285 research outputs found
Recommended from our members
Staged generic programming
Generic programming libraries such as Scrap Your Boilerplate eliminate the need to write repetitive code, but typically introduce significant performance overheads.
This leaves programmers with the regrettable choice between writing succinct but slow programs and writing tedious but efficient programs.
Applying structured multi-stage programming techniques transforms Scrap Your Boilerplate from an inefficient library into a typed optimising code generator, bringing its performance in line with hand-written code, and so combining high-level programming with uncompromised performance.</jats:p
Using author-devised cover letters instead of instructor-devised rubrics to generate useful written peer feedback comments
This study uses both qualitative and quantitative research methods in a mixed-methods approach to investigate whether the principled use of author-devised cover letters (CLs) within doctorate writing groups can result in more useful reviewer feedback comments than would be attained through the use of instructor-devised writing assessment rubrics. In this context, CLs are self-devised written documents that help the reviewers give the author useful and critical written feedback comments. Twenty participants in different discipline-specific writing groups were given explicit instruction about the importance and content of CLs during the peer feedback process. Their perceptions of a useful CL were obtained from post-course questionnaires and analysed qualitatively. In addition, their CLs at various stages of the feedback process were analysed quantitatively for genre, social presence, and evidence of teaching instruction, and compared to the CLs produced by 20 PhD students in similar writing groups who received minimal CL instruction. The study found that author-devised CLs, as opposed to instructor-devised rubrics, can allow the authors the flexibility of providing text-specific background details, requesting reviewer help on specific textual aspects, using social presence to develop a sense of writing community, and provide reflection upon their own writing
A practical mode system for recursive definitions
In call-by-value languages, some mutually-recursive value definitions can be
safely evaluated to build recursive functions or cyclic data structures, but
some definitions (let rec x = x + 1) contain vicious circles and their
evaluation fails at runtime. We propose a new static analysis to check the
absence of such runtime failures.
We present a set of declarative inference rules, prove its soundness with
respect to the reference source-level semantics of Nordlander, Carlsson, and
Gill (2008), and show that it can be (right-to-left) directed into an
algorithmic check in a surprisingly simple way.
Our implementation of this new check replaced the existing check used by the
OCaml programming language, a fragile syntactic/grammatical criterion which let
several subtle bugs slip through as the language kept evolving. We document
some issues that arise when advanced features of a real-world functional
language (exceptions in first-class modules, GADTs, etc.) interact with safety
checking for recursive definitions
Modular implicits
We present modular implicits, an extension to the OCaml language for ad-hoc
polymorphism inspired by Scala implicits and modular type classes. Modular
implicits are based on type-directed implicit module parameters, and elaborate
straightforwardly into OCaml's first-class functors. Basing the design on
OCaml's modules leads to a system that naturally supports many features from
other languages with systematic ad-hoc overloading, including inheritance,
instance constraints, constructor classes and associated types
Recommended from our members
Lambda: The Ultimate Sublanguage (experience report)
We describe our experience teaching an advanced typed functional programming course based around the use of System Fω as a programming language.</jats:p
Recommended from our members
First-class subtypes
First class type equalities, in the form of generalized algebraic data types
(GADTs), are commonly found in functional programs. However, first-class
representations of other relations between types, such as subtyping, are not
yet directly supported in most functional programming languages.
We present several encodings of first-class subtypes using existing features
of the OCaml language (made more convenient by the proposed modular implicits
extension), show that any such encodings are interconvertible, and illustrate
the utility of the encodings with several examples
Extending OCaml’s open
We propose a harmonious extension of OCaml's 'open' construct.
OCaml's existing construct 'open M' imports the names exported by the module
'M' into the current scope. At present 'M' is required to be the path to a
module. We propose extending 'open' to instead accept an arbitrary module
expression, making it possible to succinctly address a number of existing
scope-related difficulties that arise when writing OCaml programs
The regulation of coralline algal physiology, an in situ study of Corallina officinalis (Corallinales, Rhodophyta)
Calcified macroalgae are critical components of marine ecosystems worldwide, but face considerable threat both from climate change (increasing water temperatures) and ocean acidification (decreasing ocean pH and carbonate saturation). It is thus fundamental to constrain the relationships between key abiotic stressors and the physiological processes that govern coralline algal growth and survival. Here we characterize the complex relationships between the abiotic environment of rock pool habitats and the physiology of the geniculate red coralline alga, Corallina officinalis (Corallinales, Rhodophyta). Paired assessment of irradiance, water temperature and carbonate chemistry, with C. officinalis net production (NP), respiration (R) and net calcification (NG) was performed in a south-western UK field site, at multiple temporal scales (seasonal, diurnal and tidal). Strong seasonality was observed in NP and night-time R, with a Pmax of 22.35 µmol DIC (g DW)−1 h−1, Ek of 300 µmol photons m−2 s−1 and R of 3.29 µmol DIC (g DW)−1 h−1 determined across the complete annual cycle. NP showed a significant exponential relationship with irradiance (R2 = 0.67), although was temperature dependent given ambient irradiance > Ek for the majority of the annual cycle. Over tidal emersion periods, dynamics in NP highlighted the ability of C. officinalis to acquire inorganic carbon despite significant fluctuations in carbonate chemistry. Across all data, NG was highly predictable (R2 = 0.80) by irradiance, water temperature and carbonate chemistry, providing a NGmax of 3.94 µmol CaCO3 (g DW)−1 h−1 and Ek of 113 µmol photons m−2 s−1. Light NG showed strong seasonality and significant coupling to NP (R2 = 0.65) as opposed to rock pool water carbonate saturation. In contrast, the direction of dark NG (dissolution vs. precipitation) was strongly related to carbonate saturation, mimicking abiotic precipitation dynamics. Data demonstrated that C. officinalis is adapted to both long-term (seasonal) and short-term (tidal) variability in environmental stressors, although the balance between metabolic processes and the external environment may be significantly impacted by future climate change
Recommended from our members
A modular foreign function interface
Foreign function interfaces are typically organised monolithically, tying together the of each foreign function with the used to make the function available in the host language. This leads to inflexible systems, where switching from one binding mechanism to another (say from dynamic binding to static code generation) often requires changing tools and rewriting large portions of code.
We show that ML-style module systems support exactly the kind of abstraction needed to separate these two aspects of a foreign function binding, leading to declarative foreign function bindings that support switching between a wide variety of binding mechanisms — static and dynamic, synchronous and asynchronous, etc. — with no changes to the function specifications.
Note. This is a revised and expanded version of an earlier paper, This paper brings a greater focus on modularity, and adds new sections on error handling, and on the practicality of the approach we describe
Photoacclimation by arctic cryoconite phototrophs
© FEMS 2017. All rights reserved. Cryoconite is a matrix of sediment, biogenic polymer and a microbial community that resides on glacier surfaces. The phototrophic component of this community is well adapted to this extreme environment, including high light stress. Photoacclimation of the cryoconite phototrophic community on Longyearbreen, Svalbard, was investigated using in situ variable chlorophyll fluorescence. Rapid light curves (RLCs) and induction-recovery curves were used to analyse photosystem II quantum efficiency, relative electron transport rate and forms of downregulation including non-photochemical quenching (NPQ) and state transitions in cyanobacteria. Phototrophs used a combination of behavioural and physiological photochemical downregulation. Behavioural downregulation is hypothesised to incorporate chloroplast movement and cell or filament positioning within the sediment matrix in order to shade from high light, which resulted in a lack of saturation of RLCs and hence overestimation of productivity. Physiological downregulation likely consisted of biphasic NPQ, comprising a steadily induced light-dependent form and a light-independent NPQ that was not reversed with decreasing light intensity. State transitions by cyanobacteria were the most likely physiological downregulation employed by cyanobacteria within the mixed phototroph community. These findings demonstrate that cryoconite phototrophs combine multiple forms of physiological and behavioural downregulation to optimise light exposure and maximise photosynthetic productivity. This plasticity of photoacclimation enables them to survive productively in the high-light stress environment on the ice surface
- …